OpenCV开发包提供了读取各类型的图像文件、视频内容以及摄像机输入的功能,这些功能都包含在OpenCV所包含的HighGUI库中。下面,利用其中的一些功能编写一段简单的用于读取并在屏幕上显示一张图像的程序。
例:从指定文件夹中读取图片并显示在屏幕上
1 |
|
关键函数
cvLoadImage
函数原型:CVAPI(IplImage*) cvLoadImage( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR))
函数说明:从文件中读取图像,加载至内存。filename
:要被读入的文件名。iscolor
:指定读入图像的颜色。默认为CV_LOAD_IMAGE_COLOR
,也即彩色。IplImage
:来源于Intel Image Processing Library函数库,该结构体包含了一系列图像信息,是整个OpenCV函数库的基础。
该函数执行完后将返回一个指针,此指针指向一块为描述该图像文件的数据结构(IplImage*)而分配的内存块。
cvNamedWindow
函数原型:CVAPI(int) cvNamedWindow( const char* name, int flags CV_DEFAULT(CV_WINDOW_AUTOSIZE) )
函数功能:创建窗口。name
:窗口的名称,用来区分不同的窗口,并被显示为窗口标题。flags
:窗口属性标志。当其为CV_WINDOW_NORMAL(0)
时,则表示可以手动调整窗口大小;当其为CV_WINDOW_AUTOSIZE(1)
时,则表示会根据图像自动调整窗口大小,不能手动调整;当其为CV_WINDOW_OPENGL
,则表示窗口支持opengl。
cvShowImage
函数原型:CVAPI(void) cvShowImage( const char* name, const CvArr* image )
函数功能:在指定窗口中显示图像。name
:窗口的名字。image
:被显示的图像。
cvWaitKey
函数原型:CVAPI(int) cvWaitKey(int delay CV_DEFAULT(0))
函数功能:等待按键事件。delay
:延迟的毫秒数。当delay<=0时,表示无限制的等待按键事件;否则延迟“delay”毫秒。返回值为被按键的值,如果超过指定时间则返回-1.
cvReleaseImage
函数原型:CVAPI(void) cvReleaseImage( IplImage** image )
函数功能:释放该图像文件所分配的内存。
cvDestroyWindow
函数原型:CVAPI(void) cvDestroyWindow( const char* name )
函数功能:销毁窗口。
IplImage
IplImage结构来自于Intel Image Processing Library。OpenCV只支持其中的一个子集。
以下就是IplImage结构体的定义:
1 | typedef struct _IplImage |